90 IF BD<M THEN M=BD:SWAP BA,BD:SWAP BB,BC:GOTO 85
95 IF BC<M THEN M=BC:SWAP BA,BC:SWAP BB,BD
100 IF BA/BB>BC/BD THEN IF BC>BB THEN SWAP BA,BB:SWAP BC,BD ELSE SWAP BA,BC:SWAP BB,BD
105 PT=0:N=1
110 FOR Z=(BB+1) TO (BA+BB):PT=PT*Z/N:N=N+1:NEXT:N=BB+BD+1
115 FOR Z=(BC+1) TO (BA+BC):PT=PT*Z/N:N=N+1:NEXT:PT=PT*1E+30
120 FOR Z=(BD+1) TO (BC+BD):PT=PT*Z/N:N=N+1:NEXT:P=P+PT
125 IF BA>0 AND PT>0 THEN BA=BA-1:BB=BB+1:BC=BC+1:BD=BD-1:GOTO 105
130 PLAY "MS O3 L64 G O2 GE L9 E"
135 COLOR CLR2,CLR1:LOCATE 19,15:PRINT TAB(30);"p = ";:IF P<9E-09 THEN PRINT "< 10 (-8)"; ELSE PRINT P;
140 PRINT TAB(63):COLOR CLR1,CLR2:LOCATE 25,8
145 INPUT;"Do you want to perform another Fisher's exact test? (Y or N) ",A$
150 IF A$="y" OR A$="Y" THEN CLS:GOTO 20
155 LOCATE 23,1:END
160 LOCATE AR,AC:INPUT;"",I:IF INT(I)<>I THEN BEEP:LOCATE 25,25:PRINT "Please enter INTEGERS only.";:LOCATE AR,AC:PRINT " ":GOTO 160
165 RETURN
5000 BEEP:IF ERR<>53 AND ERR<>71 THEN 5010 ELSE LOCATE 10,10:PRINT "Please place EPISTAT in drive A: (or other default).":PRINT TAB(25);"Press any key to continue:"